embedded software medical device firmware medical device software development projects software developers consulting embedded medical firmware outsourcing outsource fda open source embedded systems bpo